package com.gqj.meter.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.gqj.common.annotation.Excel;
import com.gqj.common.core.domain.BaseEntity;
import org.apache.poi.ss.usermodel.IndexedColors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

/**
 * 通讯模块对象 md_com_module
 *
 * @author lxq
 * @date lxq-02-10
 */
public class MdComModule extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 通讯模块id */
    @ApiModelProperty("通讯模块id")
    private Long moduleId;

    /** rfid编号/条形码 */
    @ApiModelProperty("rfid编号/条形码")
    @Excel(name = "条形码", headerBackgroundColor = IndexedColors.RED1, width = 25)
    private String rfidNo;

    /** 资产编号 */
    @ApiModelProperty("资产编号")
    private String meterNo;

    /** 到货批次号 */
    @ApiModelProperty("到货批次号")
    @Excel(name = "到货批次号")
    private String lotNo;

    /** 关联设备类别 */
    @ApiModelProperty("关联设备类别")
    @Excel(name = "关联设备类别")
    private String assocCategory;

    /** 关联设备条码号 */
    @ApiModelProperty("关联设备条码号")
    @Excel(name = "关联设备条码号")
    private String assocRfid;

    /** 通信模块类型 */
    @ApiModelProperty("通信模块类型")
    @Excel(name = "通信模块类型")
    private String moduleType;

    /** 载波类型 */
    @ApiModelProperty("载波类型")
    @Excel(name = "载波类型")
    private String carrierWaveType;

    /** 载波型号 */
    @ApiModelProperty("载波型号")
    @Excel(name = "载波型号")
    private String carrierModel;

    /** ERP物料号 */
    @ApiModelProperty("ERP物料号")
    @Excel(name = "ERP物料号")
    private String erpMaterialCode;

    /** 硬件版本 */
    @ApiModelProperty("硬件版本")
    @Excel(name = "硬件版本")
    private String hardVer;

    /** 订单类型 */
    @ApiModelProperty("订单类型")
    @Excel(name = "订单类型")
    private String orderType;

    /** 产权单位编码 */
    @ApiModelProperty("产权单位")
    @Excel(name = "产权单位", width = 40)
    private String prOrg;

    /** 地区编码 */
    @ApiModelProperty("地区编码")
    private String areaCode;

    /** 所在单位 */
    @ApiModelProperty("所在单位")
    @Excel(name = "所在单位", width = 40)
    private String belongDept;

    /** 状态 */
    @ApiModelProperty("状态")
    @Excel(name = "状态")
    private String statusCode;

    /** 生产批次号 */
    @ApiModelProperty("生产批次号")
    @Excel(name = "生产批次号")
    private String productionNo;

    /** 制造单位 */
    @ApiModelProperty("制造单位")
    @Excel(name = "制造单位", width = 30)
    private String manufactrer;

    /** 库房标识 */
    @ApiModelProperty("库房标识")
    private Long whId;

    /** 库区标识 */
    @ApiModelProperty("库区标识")
    private Long whAreaId;

    /** 存放区标识 */
    @ApiModelProperty("存放区标识")
    private Long storeAreaId;

    /** 储位标识 */
    @ApiModelProperty("储位标识")
    private Long storeLocId;

    /** 中心频点 */
    @ApiModelProperty("中心频点")
    @Excel(name = "中心频点")
    private String centerFreq;

    /** 频率范围 */
    @ApiModelProperty("频率范围")
    @Excel(name = "频率范围")
    private String freqScope;

    /** 建档日期 */
    @ApiModelProperty("建档日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "建档日期", width = 30, dateFormat = "yyyy/MM/dd")
    private Date createdDate;

    /** 报废日期 */
    @ApiModelProperty("报废日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "报废日期", width = 30, dateFormat = "yyyy/MM/dd")
    private Date descardDate;

    /** 领用人 */
    @ApiModelProperty("领用人")
    @Excel(name = "领用人")
    private String receiveUser;

    /** 拆除人 */
    @ApiModelProperty("拆除人")
    @Excel(name = "拆除人")
    private String rmvUser;

    /** 拆除日期 */
    @ApiModelProperty("拆除日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "拆除日期", width = 30, dateFormat = "yyyy/MM/dd")
    private Date rmvDate;

    /** 资金来源 */
    @ApiModelProperty("资金来源")
    @Excel(name = "资金来源")
    private String capitalSource;

    /** 适用表/终端 */
    @ApiModelProperty("适用表/终端")
    @Excel(name = "适用表/终端")
    private String applicableMeter;

    /**
     * 库房编号
     */
    @ApiModelProperty("库房编号")
    private String whNo;

    /**
     * 库房名称
     */
    @ApiModelProperty("库房名称")
    private String whName;

    /**
     * 库区编号
     */
    @ApiModelProperty("库区编号")
    private String whAreaNo;
    /**
     * 库区名称
     */
    @ApiModelProperty("库区名称")
    private String whAreaname;
    /**
     * 存放区编号
     */
    @ApiModelProperty("存放区编号")
    private String storeAreaNo;

    /**
     * 存放区名称
     */
    @ApiModelProperty("存放区名称")
    private String storeAreaName;

    /**
     * 储位编号
     */
    @ApiModelProperty("储位编号")
    private String storeLocNo;

    /**
     * 储位名称
     */
    @ApiModelProperty("储位名称")
    private String storeLocName;

    /**
     * 通讯模块主键集合
     */
    @ApiModelProperty("通讯模块主键集合")
    private Long[] moduleIds;

    @ApiModelProperty("业务状态")
    @Excel(name = "业务状态", dictType = "service_status", type = Excel.Type.IMPORT)
    private String serviceStatus;

    /**
     * 电能表主键集合
     */
    @ApiModelProperty("业务状态集合")
    private String[] serviceStatuss;

    public String[] getServiceStatuss() {
        return serviceStatuss;
    }

    public void setServiceStatuss(String[] serviceStatuss) {
        this.serviceStatuss = serviceStatuss;
    }

    public String getServiceStatus() {
        return serviceStatus;
    }

    public void setServiceStatus(String serviceStatus) {
        this.serviceStatus = serviceStatus;
    }

    public Long[] getModuleIds() {
        return moduleIds;
    }

    public void setModuleIds(Long[] moduleIds) {
        this.moduleIds = moduleIds;
    }

    public String getPrOrg() {
        return prOrg;
    }

    public void setPrOrg(String prOrg) {
        this.prOrg = prOrg;
    }

    public void setModuleId(Long moduleId)
    {
        this.moduleId = moduleId;
    }

    public Long getModuleId()
    {
        return moduleId;
    }
    public void setMeterNo(String meterNo)
    {
        this.meterNo = meterNo;
    }

    public String getMeterNo()
    {
        return meterNo;
    }
    public void setRfidNo(String rfidNo)
    {
        this.rfidNo = rfidNo;
    }

    @NotBlank(message = "条形码不能为空")
    @Size(min = 0, max = 50, message = "条形码长度不能超过50个字符")
    public String getRfidNo()
    {
        return rfidNo;
    }
    public void setLotNo(String lotNo)
    {
        this.lotNo = lotNo;
    }

    public String getLotNo()
    {
        return lotNo;
    }
    public void setAssocCategory(String assocCategory)
    {
        this.assocCategory = assocCategory;
    }

    public String getAssocCategory()
    {
        return assocCategory;
    }
    public void setAssocRfid(String assocRfid)
    {
        this.assocRfid = assocRfid;
    }

    public String getAssocRfid()
    {
        return assocRfid;
    }
    public void setModuleType(String moduleType)
    {
        this.moduleType = moduleType;
    }

    public String getModuleType()
    {
        return moduleType;
    }
    public void setCarrierWaveType(String carrierWaveType)
    {
        this.carrierWaveType = carrierWaveType;
    }

    public String getCarrierWaveType()
    {
        return carrierWaveType;
    }
    public void setCarrierModel(String carrierModel)
    {
        this.carrierModel = carrierModel;
    }

    public String getCarrierModel()
    {
        return carrierModel;
    }
    public void setErpMaterialCode(String erpMaterialCode)
    {
        this.erpMaterialCode = erpMaterialCode;
    }

    public String getErpMaterialCode()
    {
        return erpMaterialCode;
    }
    public void setHardVer(String hardVer)
    {
        this.hardVer = hardVer;
    }

    public String getHardVer()
    {
        return hardVer;
    }
    public void setOrderType(String orderType)
    {
        this.orderType = orderType;
    }

    public String getOrderType()
    {
        return orderType;
    }
    public void setAreaCode(String areaCode)
    {
        this.areaCode = areaCode;
    }

    public String getAreaCode()
    {
        return areaCode;
    }
    public void setBelongDept(String belongDept)
    {
        this.belongDept = belongDept;
    }

    public String getBelongDept()
    {
        return belongDept;
    }
    public void setStatusCode(String statusCode)
    {
        this.statusCode = statusCode;
    }

    public String getStatusCode()
    {
        return statusCode;
    }
    public void setProductionNo(String productionNo)
    {
        this.productionNo = productionNo;
    }

    public String getProductionNo()
    {
        return productionNo;
    }
    public void setManufactrer(String manufactrer)
    {
        this.manufactrer = manufactrer;
    }

    public String getManufactrer()
    {
        return manufactrer;
    }
    public void setWhId(Long whId)
    {
        this.whId = whId;
    }

    public Long getWhId()
    {
        return whId;
    }
    public void setWhAreaId(Long whAreaId)
    {
        this.whAreaId = whAreaId;
    }

    public Long getWhAreaId()
    {
        return whAreaId;
    }
    public void setStoreAreaId(Long storeAreaId)
    {
        this.storeAreaId = storeAreaId;
    }

    public Long getStoreAreaId()
    {
        return storeAreaId;
    }
    public void setStoreLocId(Long storeLocId)
    {
        this.storeLocId = storeLocId;
    }

    public Long getStoreLocId()
    {
        return storeLocId;
    }
    public void setCenterFreq(String centerFreq)
    {
        this.centerFreq = centerFreq;
    }

    public String getCenterFreq()
    {
        return centerFreq;
    }
    public void setFreqScope(String freqScope)
    {
        this.freqScope = freqScope;
    }

    public String getFreqScope()
    {
        return freqScope;
    }
    public void setCreatedDate(Date createdDate)
    {
        this.createdDate = createdDate;
    }

    public Date getCreatedDate()
    {
        return createdDate;
    }
    public void setDescardDate(Date descardDate)
    {
        this.descardDate = descardDate;
    }

    public Date getDescardDate()
    {
        return descardDate;
    }
    public void setRmvDate(Date rmvDate)
    {
        this.rmvDate = rmvDate;
    }

    public Date getRmvDate()
    {
        return rmvDate;
    }
    public void setCapitalSource(String capitalSource)
    {
        this.capitalSource = capitalSource;
    }

    public String getCapitalSource()
    {
        return capitalSource;
    }
    public void setReceiveUser(String receiveUser)
    {
        this.receiveUser = receiveUser;
    }

    public String getReceiveUser()
    {
        return receiveUser;
    }
    public void setRmvUser(String rmvUser)
    {
        this.rmvUser = rmvUser;
    }

    public String getRmvUser()
    {
        return rmvUser;
    }
    public void setApplicableMeter(String applicableMeter)
    {
        this.applicableMeter = applicableMeter;
    }

    public String getApplicableMeter()
    {
        return applicableMeter;
    }

    public String getWhNo() {
        return whNo;
    }
    public void setWhNo(String whNo) {
        this.whNo = whNo;
    }

    public String getWhName() {
        return whName;
    }

    public void setWhName(String whName) {
        this.whName = whName;
    }

    public String getWhAreaNo() {
        return whAreaNo;
    }

    public void setWhAreaNo(String whAreaNo) {
        this.whAreaNo = whAreaNo;
    }

    public String getWhAreaname() {
        return whAreaname;
    }

    public void setWhAreaname(String whAreaname) {
        this.whAreaname = whAreaname;
    }

    public String getStoreAreaNo() {
        return storeAreaNo;
    }

    public void setStoreAreaNo(String storeAreaNo) {
        this.storeAreaNo = storeAreaNo;
    }

    public String getStoreAreaName() {
        return storeAreaName;
    }

    public void setStoreAreaName(String storeAreaName) {
        this.storeAreaName = storeAreaName;
    }

    public String getStoreLocNo() {
        return storeLocNo;
    }

    public void setStoreLocNo(String storeLocNo) {
        this.storeLocNo = storeLocNo;
    }

    public String getStoreLocName() {
        return storeLocName;
    }

    public void setStoreLocName(String storeLocName) {
        this.storeLocName = storeLocName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("moduleId", getModuleId())
            .append("meterNo", getMeterNo())
            .append("rfidNo", getRfidNo())
            .append("lotNo", getLotNo())
            .append("assocCategory", getAssocCategory())
            .append("assocRfid", getAssocRfid())
            .append("moduleType", getModuleType())
            .append("carrierWaveType", getCarrierWaveType())
            .append("carrierModel", getCarrierModel())
            .append("erpMaterialCode", getErpMaterialCode())
            .append("hardVer", getHardVer())
            .append("orderType", getOrderType())
            .append("areaCode", getAreaCode())
            .append("belongDept", getBelongDept())
            .append("statusCode", getStatusCode())
            .append("productionNo", getProductionNo())
            .append("manufactrer", getManufactrer())
            .append("whId", getWhId())
            .append("whAreaId", getWhAreaId())
            .append("storeAreaId", getStoreAreaId())
            .append("storeLocId", getStoreLocId())
            .append("centerFreq", getCenterFreq())
            .append("freqScope", getFreqScope())
            .append("createdDate", getCreatedDate())
            .append("descardDate", getDescardDate())
            .append("rmvDate", getRmvDate())
            .append("capitalSource", getCapitalSource())
            .append("receiveUser", getReceiveUser())
            .append("rmvUser", getRmvUser())
            .append("applicableMeter", getApplicableMeter())
            .toString();
    }
}
